/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 周斌
 * Date: 2024-07-14
 * Time: 22:41
 */
public class Test {
    //BM1反转链表(采取三指针)
    public ListNode ReverseList (ListNode head) {
        //如果头结点为null则直接返回null
        if(head == null) {
            return null;
        }
        //定义三个指针分别为cur作为当前节点，prve作为上一个节点，tmp作为记录cur下一个节点，prve和tmp初始值为null，prve初始值为null的原因是让链表的头结点好与下一个节点断开。
        ListNode cur = head;
        ListNode prve = null;
        ListNode tmp = null;
        while(cur != null) {
            tmp = cur.next;//记录当前节点的下一个节点
            cur.next = prve;//断开当前节点与下一个节点
            prve = cur;//刷新反转的头节点
            cur = tmp;//刷新当前节点
        }
        return prve;
    }
}
